﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Ferreteria.Forms.Configuraciones
{
    public partial class FrmGestionCategorias : Form
    {
        DisancoEntities context;
        DataTable dtCategorias;

        public FrmGestionCategorias()
        {
            InitializeComponent();
            context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);
            cmbRubros.DataSource = context.Rubros;
            cmbRubros.DisplayMember = "rubro_nombre";
            cmbRubros.SelectedIndex = 1;
           
            cargarTabla();
        }

        private void cargarTabla()
        {
            context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);
            dtCategorias = new DataTable();
            dtCategorias.Columns.Add("id");
            dtCategorias.Columns.Add("Categoria");
            //dtCategorias.Columns.Add("Descripción");
        
            try
            {
                foreach (var categ in context.Categorias)
                {
                    DataRow filaCateg = dtCategorias.NewRow();
                    filaCateg["id"] = categ.categ_id;
                    filaCateg["Categoria"] = categ.categ_nombre;
                    
                    dtCategorias.Rows.Add(filaCateg);
                }

                dgvCategorias.DataSource = dtCategorias;
                dgvCategorias.Columns["id"].Visible = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            dgvCategorias.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvCategorias.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            
            context = null;
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void bttnBuscar_Click(object sender, EventArgs e)
        {
            context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);

            dtCategorias.Rows.Clear();

            int rubro = (cmbRubros.SelectedIndex)+1;

            Rubros rubroid = context.Rubros.FirstOrDefault(r => r.rubro_id.Equals(rubro));
               
            var categQuery = from cat in context.Categorias
                             where cat.categ_nombre.Contains(txtbBuscar.Text)
                             where cat.rubro_id == rubroid.rubro_id
                             select cat;
            try
            {
                foreach (var categ in categQuery)
                {
                    DataRow filaCateg = dtCategorias.NewRow();
                    filaCateg["id"] = categ.categ_id;
                    filaCateg["Categoria"] = categ.categ_nombre;
                    //filaCateg["Descripción"] = categ.categ_descripcion;

                    dtCategorias.Rows.Add(filaCateg);
                }
                dgvCategorias.DataSource = dtCategorias;
                dgvCategorias.Columns["id"].Visible = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            context = null;
        }

        private void btnAgregarArticulo_Click(object sender, EventArgs e)
        {
            Forms.GestionCategorias.FrmAgregarCateg AgregarCateg = new GestionCategorias.FrmAgregarCateg();
            AgregarCateg.ShowDialog();
            cargarTabla();
        }

        private void btnEditarArticulos_Click(object sender, EventArgs e)
        {
            context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);

            int CategID = Convert.ToInt32(dgvCategorias[0, dgvCategorias.CurrentRow.Index].Value.ToString());
           


            Forms.GestionCategorias.FrmModifCateg ModifCateg = new GestionCategorias.FrmModifCateg(CategID);
            ModifCateg.ShowDialog();
            cargarTabla();
            context = null;

        }
    }
}
